package vashion.azeroth.core.service;

import java.util.List;

import vashion.azeroth.core.personal.pojo.PersonalApproval;
import vashion.azeroth.core.personal.pojo.PersonalMember;
import vashion.azeroth.core.result.ApiResult;

public interface PersonalApprovalService<T> {

	/**
	 * 添加点赞
	 * 
	 * */
	public ApiResult<Boolean> addApproval(PersonalApproval personalApproval);

	/**
	 * 取消点赞
	 * 
	 * */
	public ApiResult<Boolean> cancelApproval(PersonalApproval personalApproval);

	/**
	 * 查询我点赞的商品
	 * 
	 * */
	public ApiResult<List<PersonalApproval>> queryMyApprovalItem(
			Long memberId, int pageNo, int pageSize);

	/**
	 * 查询我点赞的精选贴子
	 * 
	 * */
	public ApiResult<List<PersonalApproval>> queryMyApprovalPost(
			Long memberId, int pageNo, int pageSize);

	/**
	 * 查询商品或贴子是否已点赞
	 * 
	 * */
	public ApiResult<Boolean> queryIsApproval(Long memberId, Integer type,
			String targetCode);

	/**
	 * 查询商品或贴子 点赞数量
	 * 
	 * */

	public ApiResult<Integer> queryApprovalCnt(Integer type, String targetCode);

	/**
	 * 查询商品或贴子 点赞会员列表
	 * 
	 * */

	public ApiResult<List<PersonalMember>> queryApprovalMember(Integer type,
			String targetCode);

	public ApiResult<List<PersonalApproval>> getFeedsApprovalInfo(Integer type,
			String targetCode);

}
